]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
main: Do not export DBus interfaces before initializing the UI
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 8 Mar 2013 20:04:15 +0000 (21:04 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Thu, 14 Mar 2013 16:28:31 +0000 (17:28 +0100)
Since commit 7cdb75e7ce76, initializing UI is deferred until the session
mode has been loaded. However DBus is still initialized immediately,
which means that for DBus methods that access properties in Main, there
is now a window between the method being exposed on the bus and the
method being ready to be called. At least g-s-d grabbing global keybindings
is likely to fall in this window on session startup, and almost guaranteed
when regrabbing bindings after a shell restart.
To fix, defer initializing DBus as well.

https://bugzilla.gnome.org/show_bug.cgi?id=694321

js/ui/main.js

index ca4d49e06a415936d4e06023225e8b4ccd65870a..f438114148aebef393d7a01f4f54507666718614 100644 (file)
@@ -99,9 +99,6 @@ function start() {
 
     Gio.DesktopAppInfo.set_desktop_env('GNOME');
 
-    shellDBusService = new ShellDBus.GnomeShell();
-    shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
-
     sessionMode = new SessionMode.SessionMode();
     sessionMode.connect('sessions-loaded', _sessionsLoaded);
     sessionMode.init();
@@ -110,6 +107,10 @@ function start() {
 function _sessionsLoaded() {
     sessionMode.connect('updated', _sessionUpdated);
     _initializeUI();
+
+    shellDBusService = new ShellDBus.GnomeShell();
+    shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
+
     _sessionUpdated();
 }